package com.ruoyi.outbound.outbound.mapper;

import java.util.Date;
import java.util.List;

import com.ruoyi.outbound.outbound.domain.BicycleOut;
import com.ruoyi.outbound.outbound.domain.Outbound;
import org.apache.ibatis.annotations.Param;

/**
 * 出库单Mapper接口
 * 
 * @author zzx
 * @date 2024-02-21
 */
public interface OutboundMapper 
{
    /**
     * 查询出库单
     * 
     * @param containerNumber 出库单主键
     * @return 出库单
     */
    public Outbound selectOutboundByConsignmentId(String containerNumber);

    /**
     * 查询出库单列表
     * 
     * @param outbound 出库单
     * @return 出库单集合
     */
    public List<Outbound> selectOutboundList(Outbound outbound);

    /**
     * 新增出库单
     * 
     * @param outbound 出库单
     * @return 结果
     */
    public int insertOutbound(Outbound outbound);

    /**
     * 修改出库单
     * 
     * @param outbound 出库单
     * @return 结果
     */
    public int updateOutbound(Outbound outbound);

    /**
     * 删除出库单
     * 
     * @param consignmentId 出库单主键
     * @return 结果
     */
    public int deleteOutboundByConsignmentId(String consignmentId);

    /**
     * 批量删除出库单
     * 
     * @param consignmentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOutboundByConsignmentIds(String[] consignmentIds);

    void insertBicycle( @Param("consignmentId")String consignmentId, @Param("containerNumber")String containerNumber,@Param("bicycleId")String bicycleId);

    int selectBicycleNumber(String consignmentId);

    List<String> selectBicycleList(String containerNumber);

    int updateAuditByoutboundService(String containerNumber);

    void updateUnAuditByoutboundService(String containerNumber);

    void deleteBicycleBycontainerNumber(String containerNumber);

    int selectNumberByConsignmentId(String consignmentId);

    int selectBicycleListByBicycleId(String bicycleId);

    Date selectoutboundDateByBicycle(String bicycleId);
}
